Спецкурс Пара Python'а
Основная информация
№ Пункт Содержание
1 Направление Третий Путь
2 Класс 8-11
3 Тип курса зачётный для всех классов
4 Преподаватели Савельев Александр Нюренберг Кирилл
5 Стажёры -
6 Время проведения Четверг 18:55 - 20:15
7 Цель курса Обучить основам программирования на примере языка программирования Python
8 Задачи курса Изучить базовые типы данных. Изучить базовые структуры данных. Научиться работать с циклами и условными операторами. Научиться работать с функциями. Развить навык решения типовых и трудоемких задач. Изучить базовые алгоритмы сортировки, поиска. Научиться взаимодействовать с данными в текстовых файлах, электронных таблицах. Изучить основные понятия ООП. Изучить основы многопоточного программирования.
9 Особенности курса Курс нацелен на формирование фундаментальной базы программирования без жесткой привязки к языку программирования Python. Акцент сделан на устной защите домашних работ, включающей разбор стиля написания кода, на практической отработке полученной теории.
10 Формат проведения занятия (включая использование classroom) Занятие начинается с лекции, в рамках которой разбирается новая теория и её применение для решения типовых задач. После лекции проводится практическая часть. Во время неё можно сдать домашнее задание или задать интересующие вопросы в индивидуальном порядке.
11 Целевая аудитория Для учеников без опыта программирования.
12 Краткое описание курса Курс об основах программирования на базе языка Python.
13 Количество слушателей от 10 до 20 человек
14 Отбор Отбор по входной работе.
15 Формы контроля и система отчётности Домашние задания - 40% Каждое ДЗ будет состоять из 6 задач. 2 легкие, 2 средние, 2 сложные. Дедлайн на сдачу задачи из ДЗ - 2 недели с момента выдачи. Через две недели задачу можно будет сдать, но без возможности получения баллов. Экзамены - 40% Каждый экзамен будет разделен на две части. Теоретическую и практическую. В теоретической части нужно будет проанализировать уже написанный код, решить задачи, написав код на бумаге. Практическая часть будет проходить на компьютерах. Проверочные - 20% Минимальный критерий для получения зачета: ДЗ - 25% (всего 12 задач) Экзамены - 25% (суммарно по результатам обоих экзаменов) Проверочные - 10% (суммарно по результатам всех проверочных)
16 Формат курса: онлайн/оффлайн/гибрид. В случае онлайн, какие платформы используются? Офлайн. В случае ЧП курс будет проводится на платформе Яндекс Телемост.
17 Дополнительная информация о курсе -
Позанятийный план
№ занятия Дата (Четверг) Тематический блок План занятия
1 08.10.2026 Вводное занятие 1) Отборочная работа на 30 минут. 2) Знакомство с учениками. Введение в организацию курса. 3) Введение в программирование. Что такое программа и алгоритм. Языки программирования. Разница между компилируемыми и интерпретируемыми языками программирования. 4) Установка среды программирования IDLE. 5) Первая программа. Функция print. Переменные. Типы данных: int, float, str, bool. Функция input.
2 15.10.2026 Операторы 1) Арифметические операторы. Сложение, вычитание, умножение, деление с остатком, возведение в степень, целочисленное деление. 2) Операторы присваивания. Равно, присваивание с применением арифметических операций. 3) Операторы сравнения. Эквивалентность, отрицание эквивалентности, больше, меньше, больше или равно, меньше или равно. 4) Логические операторы. and, or, not. 5) Порядок выполнения операций. 6) Решение задач
3 22.10.2026 Операторы 1) Условные операторы if-elif-else. Вложенные условия. Тернарный условный оператор. Оператор сравнения match-case. 2) Операторы цикла for, while. Операторы управления циклом break, continue. Вложенные циклы. 3) Решение задач.
4 29.10.2026 Структуры данных 1) Структура данных list. Индексация, срезы, изменяемость. Методы append, extend, insert, remove, pop, sort, reverse, clear. 2) Структура данных tuple. Индексация, срезы, неизменяемость. 3) Структура данных set. Изменяемость. Методы add, remove, pop, clear. Операции над множествами: объединение (|), пересечение (&), разность (-), симметричная разность (^). 4) Структура данных dict. Доступ по ключу, изменяемость. Методы get, keys, values, items, update, pop. 5) Тип данных str. Индексация, срезы, неизменяемость. Методы upper, lower, strip, split, join, replace, find. Операции над строками: конкатенация (+), повторение (*). f-строки. 6) Решение задач.
5 05.11.2026 Проверочная Проверочная работа по пройденным темам.
6 12.11.2026 Функции 1) Функции. Синтаксис функций. Ключевое слово def и оператор return. Аргументы функции. Область видимости переменных. Значения аргументов по умолчанию. *args и **kwargs 2) Обработка ошибок с помощью try-except. Оператор finally. 3) lambda-Функции. Синтаксис lambda-функций. Отличия lambda-функций от обычных. 4) Решение задач.
7 19.11.2026 Функции 1) Рекурсия. Концепция рекурсии. Классические примеры задач на рекурсию (сумма чисел от 1 до n, факториал n, числа Фибоначчи). Причины RecursionError. Сравнение рекурсии и итерации. 2) Масштабное решение задач на рекурсивные функции.
8 26.11.2026 Работа с файлами 1) Работа с библиотеками. Импортирование библиотек. 2) Открытие, чтение, запись, закрытие текстовых файлов. 3) Чтение таблиц csv. Создание функций для работы с файлами. 4) Решение задач.
9 03.12.2026 Консультация Консультация перед экзаменом. Сдача ДЗ.
10 10.12.2026 Экзамен Экзамен
11 17.12.2026 Чаепитие Пересдача экзамена. Чаепитие.
12 24.12.2026 Резерв Резерв
31.12.2026
07.01.2027
14.01.2027
21.01.2027
13 28.01.2027 Повторение 1) Повторение пройденного за первое полугодие. 2) Дебаг. Работа со встроенным отладчиком на примере реальной программы.
14 04.02.2027 ООП 1) Введение в объектно-ориентированное программирование(ООП). Ответ на вопрос зачем нужно создавать объекты. Принципы ООП (инкапсуляция, наследование, полиморфизм). 2) Классы. Ключевое слово class. Конструктор объекта __init__. Ключевое слово self. Методы класса. Атрибуты класса и экземпляров. 3) Написание собственного класса (Практическая часть).
15 11.02.2027 ООП 1) Повторение предыдущей лекции. 2) Наследование. Создание дочернего класса. Многоуровневое наследование. Композиция против наследования. 3) Полиморфизм. Переопределение методов родительского класса, создание новых. Функция super. 4) Инкапсуляция. Отличия protected(_) и private(__) методов и атрибутов класса 5) Магические методы. Обзор методов сложения, строкового представления, сравнения классов. 6) Решение задач.
16 18.02.2027 Проверочная Проверочная работа по ООП.
17 25.02.2027 Структуры данных 1) Абстрактные типы данных. Популярные АТД: стек, очередь, список, множество, ассоциативный массив, очередь с приоритетом, графы, деревья. 2) Стек. Логика работы. Обзор возможной реализации. 3) Список. Логика работы односвязного и двусвязного списка. Обзор возможной реализации. 4) Очередь. Логика работы простой, двусторонней, кольцевой очереди. Обзор возможной реализации. 5) Множество. Логика работы. Обзор возможной реализации.
18 04.03.2027 Алгоритмы 1) Введение. Оценка сложности алгоритма. Оценка сложности на примере уже пройденных структур данных. 2) Сортировки. Какие существуют алгоритмы (пузырьком, вставками, выбором, быстрая, слиянием, пирамидальная, Timsort) и их сложность. 3) Сортировка пузырьком. Логика работы. Реализация. Оценка сложности. 4) Сортировка вставками. Логика работы. Реализация. Оценка сложности. 5) Сортировка выбором. Логика работы. Реализация. Оценка сложности. 6) Решение задач.
19 11.03.2027 Алгоритмы 1) Алгоритмы поиска. Какие существуют алгоритмы поиска (линейный, бинарный, поиск в ширину, поиск в глубину, алгоритм Дейкстры, A-star) и их сложность. Алгоритмические методы (два указателя, жадные алгоритмы, разделяй и властвуй, динамическое программирование, поиск с возвратом). 2) Бинарный поиск. Как и в каких задачах работает. Реализация. Оценка сложности. 3) Метод двух указателей. Как и в каких задачах работает. Обзор возможной реализации. Оценка сложности. 4) Метод скользящего окна. Дополнения метода двух указателей. 5) Решение задач.
20 18.03.2027 Многопоточное программирование 1) Введение в многопоточное программирование. Концепт многопоточного программирования. Разница между конкурентностью и параллелизмом. 2) Класс Thread. I/O-bound задачи. Первый поток и deadlock. 3) Состояние гонки и как с ним бороться. GIL. 4) Классы Process и Queue. CPU-bound задачи. 5) Решение задач.
21 25.03.2027 Многопоточное программирование 1) Асинхронность. Связь с многопоточностью. Область применения. 2) Ключевые слова async, await. Функции gather, run. Блокирующие вызовы. 3) Комбинация асинхронности и многопоточности. 4) Масштабное решение задач на многопоточность и асинхронность.
22 01.04.2027 Консультация Консультация перед экзаменом. Сдача ДЗ.
23 08.04.2027 Экзамен Экзамен
24 15.04.2027 Чаепитие Пересдача экзамена. Чаепитие.
22.04.2027
29.04.2027
06.05.2027
13.05.2027
20.05.2027
27.05.2027
03.06.2027
10.06.2027
17.06.2027
24.06.2027
01.07.2027
Список используемой и рекомендованной литературы
1 Бхаргава, А. Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих / А. Бхаргава. — Санкт-Петербург : Питер, 2017. — 288 с.
2 Игошин, В. И. Математическая логика и теория алгоритмов : учебное пособие / В. И. Игошин. — Москва : Академия, 2008. — 448 с.
3 Документация Python : официальный сайт. — URL: https://docs.python.org/
4 Источник задач : сайт. — URL: https://informatics.msk.ru/
5 Теоретический материал : сайт. — URL: https://docs-python.ru/
6
7
8
9